package com.whzykj.common;

import java.text.ParseException;
import java.util.Date;
import java.util.List;

import com.jfinal.plugin.ehcache.CacheKit;
import com.whzykj.model.SystemRunParam;

public class SystemRunParamCache {
	public static final SystemRunParamCache cache=new SystemRunParamCache();
	
	/**
	 * 系统缓存所有运行参数
	 */
	public void loadCache(){
		List<SystemRunParam> paramList=SystemRunParam.me.loadRunParamCache();
		CacheKit.put("paramCache", "param", paramList);
	}
	
	/**
	 * 查找内存中运行参数名称对应的值
	 * @param paramName
	 * @return
	 */
	public String getParamValue(String paramName){
		String value=null;
		List<SystemRunParam> pList=CacheKit.get("paramCache","param");
		if(pList==null){
			loadCache();
			pList=CacheKit.get("paramCache","param");
		}
		for(SystemRunParam param:pList){
			String name=param.getStr("name");
			if(name.equals(paramName)){
				value=param.getStr("value");
				break;
			}
		}
		return value;
	}
	
	/**
	 * 获取待付款订单截止付款的时间
	 * @param order_date  		格式：yyyy-MM-dd HH:mm:ss
	 * @return 截止付款的时间字符串	格式：yyyy-MM-dd HH:mm:ss
	 */
	public String getLastOrderPaytime(String order_date){
		String endTime=null;
		try {
			Date o_date=DateUtil.convertStringToDate("yyyy-MM-dd HH:mm:ss", order_date);
			String order_end_time=SystemRunParamCache.cache.getParamValue("order_close_time");	
			long last_pay_time=o_date.getTime()+1000*60*Integer.valueOf(order_end_time);
			Date last_pay_date=new Date(last_pay_time);
			endTime=DateUtil.getDateTime("yyyy-MM-dd HH:mm:ss",
					last_pay_date);
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return endTime;
	}
}
